package com.wwj.aiAnswer.utils;

import cn.hutool.core.io.file.FileReader;
import com.wwj.aiAnswer.entity.AnswerEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * 将TXT转换成List
 */
public class GetTxtToListUtil {
    public static List<AnswerEntity> getTxtToList(String filePath){
        // 创建文件读的对象
        FileReader fileReader = new FileReader(filePath);
        // 以行为单位读取到List集合中
        List<String> list = fileReader.readLines();
        List<AnswerEntity>  answerEntityList = new ArrayList<>();
        // 是否是一个新的问答
        boolean isNewPassage = false;
        // 创建问答实体和该实体内的List问题属性
        AnswerEntity answerEntity = new AnswerEntity();
        List<String> questionList = new ArrayList<>();
        for (String item :list){
            // 读到开始就设置标志位true
            if ("==========start==========".equals(item)) {
                // 设置标志位
                isNewPassage = true;
            }else if (item.split("：")[0].equals("question") && isNewPassage) {
                // 是question后面的文本则是为问题内容，将其存入questionList集合
                questionList.add(item.split("：")[1]);
                // 将集合设置给对象
                answerEntity.setQuestion(questionList);
            }else if(item.split("：")[0].equals("answer") && isNewPassage) {
                // 是answer后面的文本是回答内容，存入answer属性
                answerEntity.setAnswer(item.split("：")[1]);
            }else if("==========end==========".equals(item)){
                // 一段问答结束
                answerEntityList.add(answerEntity);
                //  清空局部变量
                questionList = new ArrayList<>();
                answerEntity = new AnswerEntity();
                // 设置false表示一段问题结束
                isNewPassage = false;
            }
        }
        //  向控制台输出转换的数据
        answerEntityList.forEach(item -> {
            System.out.println("====================");
            item.getQuestion().forEach(item2 -> {
                System.out.println("question：" + item2);
            });
            System.out.println("answer：" + item.getAnswer());
        });
        System.out.println("====================");
        return answerEntityList;
    }
}
